package xing.repository.isv.suite;


import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import xing.domain.isv.suite.CorpJSAPITicket;

import java.util.Date;

/********************************
 * 文 件 名 :CorpJSAPITicketRepository.java
 * 创 建 人：陈天龙
 * 日    期：2017/8/25
 * 描   述：js tickets信息数据层操作接口
 * 版 本 号：v1.0.0
 ********************************/
public interface CorpJSAPITicketRepository extends JpaRepository<CorpJSAPITicket,Long> {

    /**
     * 描    述：查询CorpJSAPITicket
     * 创 建 人：陈天龙
     * 日    期：2017/8/25
     * @param suiteKey
     * @param corpId
     * @return CorpToken
     */
    CorpJSAPITicket findBySuiteKeyAndCorpId(String suiteKey,String corpId);

    /**
     * 描    述：新增或更新corpJSAPITicket
     * 创 建 人：陈天龙
     * 日    期：2017/8/25
     * @param id
     * @param suiteKey
     * @param corpId
     * @param corpJsapiTicket
     * @param expiredTime
     * @return int
     */
    @Modifying
    @Query(value = "insert into isv_corp_suite_jsapi_ticket (id,gmt_create,gmt_modified,suite_key,corp_id,corp_jsapi_ticket,expired_time" +
            ")values(:id,now(),now(),:suiteKey,:corpId,:corpJsapiTicket,:expiredTime)" +
            "ON DUPLICATE KEY UPDATE gmt_modified=now(),corp_jsapi_ticket=:corpJsapiTicket,expired_time=:expiredTime",nativeQuery = true)
    int saveOrUpdateCorpJSAPITicket(@Param("id") Long id, @Param("suiteKey") String suiteKey, @Param("corpId") String corpId, @Param("corpJsapiTicket") String corpJsapiTicket, @Param("expiredTime") Date expiredTime);

}
